WNetKAT: A Weighted SDN Programming and Verification Language
نویسندگان
چکیده
Programmability and verifiability lie at the heart of the software-defined networking paradigm. While OpenFlow and its match-action concept provide primitive operations to manipulate hardware configurations, over the last years, several more expressive network programming languages have been developed. This paper presents WNetKAT, the first network programming language accounting for the fact that networks are inherently weighted, and communications subject to capacity constraints (e.g., in terms of bandwidth) and costs (e.g., latency or monetary costs). WNetKAT is based on a syntactic and semantic extension of the NetKAT algebra. We demonstrate several relevant applications forWNetKAT, including costand capacity-aware reachability, as well as quality-of-service and fairness aspects. These applications do not only apply to classic, splittable and unsplittable (s, t)-flows, but also generalize to more complex (and stateful) network functions and service chains. For example, WNetKAT allows to model flows which need to traverse certain waypoint functions, which can change the traffic rate. This paper also shows the relationship between the equivalence problem of WNetKAT and the equivalence problem of the weighted finite automata, which implies undecidability of the former. However, this paper also shows the decidability of whether an expression equals to 0, which is sufficient in many practical scenarios, and we initiate the discussion of decidable subsets of the whole language. 1998 ACM Subject Classification C.2 Computer-Communication Networks
منابع مشابه
Proof-based Verification of Software Defined Networks
Software defined network (SDN) eases the task of programming and managing computer networks. The conceptually centralized nature of the control plane provides a holistic view of the network, thereby making it feasible to verify SDN’s functionalities. Verification of SDN is gaining attention in the last few years [1, 5]. There are two main challenges of SDN: (1) SDNs are often programmed in gene...
متن کاملTowards Correct-by-Construction SDN
High-level SDN languages raise the level of abstraction in SDN programming from managing individual switches to programming network-wide policies. In this talk, we present Cocoon (for Correct by Construction Networking), an SDN programming language designed around the idea of iterative refinement. The network programmer starts with a high-level description of the desired network behavior, focus...
متن کاملQuality of Service Abstractions for Software-defined Networks
Software-defined networking (SDN) provides a means of configuring the packet-forwarding behavior of a network from a logically-centralized controller. Expressive, high-level languages have emerged for expressing data-plane configurations, and new tools allow for verifying packet reachability properties in real time. But SDN largely ignores quality of service (QoS) primitives, such as queues, qu...
متن کاملToward the First SDN Programming Capacity Theorem on Realizing High-Level Programs on Low-Level Datapaths
High-level programming and programmable data paths are two key capabilities of software-defined networking (SDN). A fundamental problem linking these two capabilities is whether a given high-level SDN program can be realized onto a given low-level SDN datapath structure. Considering all highlevel programs that can be realized onto a given datapath as the programming capacity of the datapath, we...
متن کاملScalable Programming for SDN Controllers
Introduction. A major recent development in computer networking is the notion of Software-Defined Networking (SDN), which allows a network to customize its behaviors through centralized policies at a conceptually centralized network controller. In particular, Openflow [4] has made significant progress by establishing (1) flow tables as a standard data-plane abstraction for distributed switches,...
متن کامل